package br.edu.ufersa.scrumgame.mbean.converter;

import javax.ejb.EJB;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import javax.faces.convert.Converter;
import javax.faces.convert.ConverterException;
import javax.faces.convert.FacesConverter;

import br.edu.ufersa.scrumgame.facade.AtividadeFacade;
import br.edu.ufersa.scrumgame.modelo.Atividade;

@FacesConverter(value = "atividadeConverter")
@ManagedBean
public class AtividadeConverter implements Converter {

	@EJB
	private AtividadeFacade atividadeFacade;

	@Override
	public Object getAsObject(FacesContext facesContext, UIComponent component, String submittedValue) {
		
		if (submittedValue == null || submittedValue.length() == 0) {
			return null;
		}
		
		try {
			Atividade atividade = atividadeFacade.find(Integer.valueOf(submittedValue));
			return atividade;
		} catch (NumberFormatException e) {
			throw new ConverterException(new FacesMessage(FacesMessage.SEVERITY_ERROR, "Conversion Error",
					"Not valid"));
		}
	}

	@Override
	public String getAsString(FacesContext facesContext, UIComponent component, Object value) {
		String retorno;

		if (value instanceof Atividade) {
			Atividade atividade = (Atividade) value;
			retorno = String.valueOf(atividade.getId());
		} else {
			retorno = "";
		}

		return retorno;
	}

}
